package chances.system.operator.repo;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import chances.system.operator.entity.EnumData;

public interface EnumDataRepository extends JpaRepository<EnumData, Long> {

    EnumData getByCode(@Param("code") String code);

    @Query("from EnumData")
    public List<EnumData> findAvaliableEnumData();

    @Query("from EnumData where id=:id")
    public EnumData findById(@Param("id") Long id);

    @Query("from EnumData where code=:code")
    public List<EnumData> findByCode(@Param("code") String code);

    @Query("from EnumData where name=:name and parentId=1001")
    public List<EnumData> findByName(@Param("name") String name);

    @Query("from EnumData where parentId=:parentId")
    public List<EnumData> findByParentId(@Param("parentId") Long parentId);

    @Query("from EnumData where parentId=:parentId")
    public List<EnumData> nameFindByParentId(@Param("parentId") Long parentId);

    @Query("select o from EnumData o")
    public Page<EnumData> filter(@Param("parentId") Long parentId, Pageable pageable);

}
